Flash memory is a type of memory that is non-volatile, can be electrically erased and written, and that offers short read access times. For these reasons, flash memory has become increasingly popular in portable devices such as personal digital assistants, mobile phones, digital music players, and the like, as well as in computer systems in the form of solid-state drives.
Flash memory is currently available in two types: single-level memory cell (SLC), which can store one data bit per memory cell, and multi-level memory cell (MLC), which can store multiple data bits per memory cell. MLC flash memory is generally implemented in a manner similar to that of NAND logic gates, and so is often referred to as MLC NAND flash memory.
MLC flash memory is organized in memory blocks. Each memory block includes a plurality of pages. Each memory cell spans multiple pages. One problem with this arrangement is that, if power is lost while writing to one page, data is corrupted, not only in that page, but also in the other pages that share the same memory cells.